home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1993 / MacHack 1993.toast / MacHack™ 1987-1992 / MacHack™ '90 / Utilities ƒ / MPW Tools ƒ / Simula4.07 / Simula 4.07ƒ / SInterfaces / macUtilities.sim < prev    next >
Encoding:
Text File  |  1989-05-01  |  4.9 KB  |  133 lines  |  [TEXT/MPS ]

  1. % ---------------------------------------------------------------------------
  2. %    Class MacUtilities
  3. %
  4. % The routines listed in Inside Macintosh chapter X: 
  5. % The code has been converted from the file ToolInft.p
  6. % In this module you find the programmers interface to
  7. % General utility procedures. You will find the basic toolbox 
  8. % callls in ToolboxUtilities.
  9. %
  10. % 890409/Boris Magnusson
  11. % ---------------------------------------------------------------------------
  12. External class MacPoint="::Sinterfaces:MacPoint";
  13. External class MacRect="::Sinterfaces:MacRect";
  14. External class ToolboxUtilities="::Sinterfaces:toolboxUtilities";
  15. TOOLBOXUtilities class MacUtilities;
  16. begin
  17.     ! General Utilities ;
  18.  
  19. Integer procedure BitAnd(long1,long2); integer long1,long2;BitAnd:=TOOLBOXBitAnd(long1,long2);
  20. Integer procedure BitOr(long1,long2); integer long1,long2;BitOr:=TOOLBOXBitOr(long1,long2);
  21. Integer procedure BitXor(long1,long2); integer long1,long2;BitXor:=TOOLBOXBitXor(long1,long2);
  22. Integer procedure BitNot(long1); integer long1;BitNot:=TOOLBOXBitNot(long1);
  23. Integer procedure BitShift(long1,count); integer long1; short integer count;
  24.     BitShift:=TOOLBOXBitShift(long1,count);
  25. Boolean procedure BitTst(bytePtr,bitNum); text bytePtr; integer bitNum;
  26.     BitTst:=TOOLBOXBitTst(bytePtr,bitNum);
  27. procedure BitSet(bytePtr,bitNum); text bytePtr;integer bitNum;TOOLBOXBitSet(bytePtr,bitNum);
  28. procedure BitClr(bytePtr,bitNum); text bytePtr;integer bitNum;TOOLBOXBitClr(bytePtr,bitNum);
  29.  
  30. %    procedure TOOLBOXLongMul(a, b: LONGINT; VAR dst: Int64Bit);
  31.  
  32. integer procedure FixMul(a, b);integer a,b;FixMul:=TOOLBOXFixMul(a, b);
  33. Integer procedure FixRatio(numer,denom); short integer numer,denom;
  34.     FixRatio:=TOOLBOXFixRatio(numer,denom); 
  35. short Integer procedure HiWord(x); integer x;HiWord:=TOOLBOXHiWord(x);
  36. short Integer procedure LoWord(x); integer x;LoWord:=TOOLBOXLoWord(x);
  37. short Integer procedure FixRound(x); integer x;FixRound:=TOOLBOXFixRound(x);
  38.  
  39. %    procedure TOOLBOXPackBits(VAR srcPtr, dstPtr: Ptr; srcBytes: INTEGER);
  40. %    procedure TOOLBOXUnPackBits(VAR srcPtr, dstPtr: Ptr; dstBytes: INTEGER);
  41.  
  42. Integer procedure SlopeFromAngle(angle); short integer angle;
  43.     SlopeFromAngle:=TOOLBOXSlopeFromAngle(angle);
  44. short Integer procedure AngleFromSlope(slope); integer slope;
  45.     AngleFromSlope:=TOOLBOXAngleFromSlope(slope);
  46.     
  47. Integer procedure DeltaPoint(ptA, ptB);ref(MacPoint) ptA,ptB;
  48.     DeltaPoint:=TOOLBOXDeltaPoint(ptA.v, ptB.v);
  49.  
  50. %    ??? NewString(theString: Str255): StringHandle;
  51. Integer procedure NewString(simText);text simText;
  52.     begin
  53.         text temp; temp:-text_string(simText);
  54.         NewString:=TOOLBOXNewString(simText);
  55.     end;
  56.  
  57. %    SetString(theString: StringHandle; strNew: Str255);
  58. procedure SetString(StringHandle,Str255);name Str255; 
  59.         integer StringHandle; text Str255;
  60.         begin
  61.             text temp;temp:-blanks(256);
  62.             TOOLBOXSetString(StringHandle,Temp);
  63.             Str255:-string_text(temp);
  64.         end;
  65.  
  66. Integer procedure GetString(stringID); short integer StringID;
  67.     GetString:=TOOLBOXGetString(stringID);
  68.  
  69. %    External TOOLBOX procedure x="" is 
  70. %    procedure TOOLBOX  GetIndString(VAR theString: Str255; strListID: INTEGER;
  71. %                     index: INTEGER);
  72. %
  73. %    External TOOLBOX procedure x="$A9E0" is 
  74. %    Integer procedure TOOLBOX Munger(h: Handle; offset: LONGINT; ptr1: Ptr; len1: LONGINT;
  75. %                    ptr2: Ptr; len2: LONGINT): LONGINT;
  76. %    INLINE $A9E0;
  77.  
  78. Integer procedure GetIcon(iconID); short integer iconID; GetIcon:=TOOLBOXGetIcon(iconID);
  79.  
  80.     procedure PlotIcon(theRect,theIcon);ref(MacRect) theRect;integer theIcon;
  81.         TOOLBOXPlotIcon(theRect.top,theIcon);
  82.  
  83. Integer procedure GetCursor(cursorID); short integer cursorID;
  84.     GetCursor:=TOOLBOXGetCursor(cursorID);
  85.     
  86. %    GetPattern(patID: INTEGER): PatHandle;
  87. Integer procedure GetPattern(patID); short integer patID;GetPattern:=TOOLBOXGetPattern(patID);
  88.  
  89. %    GetPicture(picID: INTEGER): PicHandle;
  90. Integer procedure GetPicture(picID); short integer picID;GetPicture:=TOOLBOXGetPicture(picID);
  91.  
  92. %    External TOOLBOX procedure x="" is 
  93. %    procedure TOOLBOX  GetIndPattern(VAR thePat: Pattern; patListID: INTEGER;
  94. %                        index: INTEGER);
  95.  
  96. procedure ShieldCursor(shield,offset);ref(MacRect) shield; ref(MacPoint) offset;
  97.         TOOLBOXShieldCursor(shield.top,offset.v);
  98.         
  99. %    External TOOLBOX procedure x="" is 
  100. %    procedure TOOLBOXScreenRes(VAR scrnHRes, scrnVRes: INTEGER);
  101.  
  102. % ===================================================================
  103. % Utilities  addad to support Simula-calls to the toolbox
  104. %     text_string
  105. % Routine to convert a SIMULA text to a Mac Pascal type str255
  106. %
  107.     text procedure text_string(t); text t;
  108.     begin
  109.         text temp;
  110.         temp:-blanks(256);
  111.         temp.putchar(char(t.length));
  112.         temp.sub(2,255):=t;    
  113.         text_string:-temp
  114.     end;
  115.  
  116. %     string_text
  117. % Routine to convert a Mac Pascal type str255 to a SIMULA text. 
  118. %
  119.  
  120.     text procedure string_text(t); text t;
  121.     begin
  122.         string_text:-t.sub(2,rank(t.sub(1,1).getchar));
  123.     end;
  124.  
  125.     integer procedure ostype(thetext);text thetext;
  126.     begin ostype:=rank(thetext.getchar)*16R1000000+
  127.         rank(thetext.getchar)*16R10000+
  128.         rank(thetext.getchar)*16R100+
  129.         rank(thetext.getchar);
  130.     end;
  131.  
  132. END --- MAC Utilities --- ;